﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ForrajeriaBCL;//para poder acceder a las clases
using ForrajeriaDB;//para tener acceso a la base



namespace ForrajeriaFRONT.ABM
{
    public partial class Marca : System.Web.UI.Page
    {
        private MarcaBCL marcaBC;
        private MarcaMO objeto;

        public Marca()
        {
            marcaBC = new MarcaBCL();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            cargarGrilla();
        }

        protected void cargarGrilla()
        {
            gridDatos.DataSource = null;

            List<MarcaMO> lista = marcaBC.GetAll(); //Genero una lista por medio del metodo getAll de MarcaDAL el cual es implementado por medio de MarcaBC

            //A continuacion la carga de todos los datos en la grilla (despues se puede cambiar por un combo, esto es a modo de prueba)

            gridDatos.DataSource = lista;
            gridDatos.DataBind();
            lblResultado.Text = "";

        }


        protected void gridDatos_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int ind = e.RowIndex;
            txtDescripcion.Text = "";
            txtNombre.Text = "";

            objeto = new MarcaMO();
            objeto.CodigoMarca = Int32.Parse(gridDatos.Rows[ind].Cells[0].Text);
            objeto.Descripcion = null;
            objeto.Nombre = null;

            string res = marcaBC.Eliminar(objeto);

            if (res == "1")
                cargarGrilla();
            else
            {
                lblResultado.Text = res;
                lblResultado.ForeColor = System.Drawing.Color.Red;
            }

        }


        protected void gridDatos_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            int ind = e.NewSelectedIndex;

            objeto = new MarcaMO();

            objeto.CodigoMarca = Int32.Parse(gridDatos.Rows[ind].Cells[0].Text);
            objeto.Nombre = gridDatos.Rows[ind].Cells[1].Text;
            objeto.Descripcion = gridDatos.Rows[ind].Cells[2].Text;

            ViewState["objeto"] = objeto;

            txtNombre.Text = gridDatos.Rows[ind].Cells[1].Text;
            txtDescripcion.Text = gridDatos.Rows[ind].Cells[2].Text;

        }

        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            objeto = (MarcaMO)ViewState["objeto"];

            if (objeto == null)//Insert
            {
                objeto = new MarcaMO(null, txtNombre.Text, txtDescripcion.Text);

                string res = marcaBC.Adicionar(objeto);


                if (res == "1")
                {
                    lblResultado.ForeColor = System.Drawing.Color.Blue;

                    lblResultado.Text = "Guardado con Exito";
                    cargarGrilla();

                }
                else
                {
                    lblResultado.ForeColor = System.Drawing.Color.Red;
                    lblResultado.Text = "Todo mal";
                }

            }
            else//update
            {
                MarcaMO objetoNuevo = new MarcaMO(objeto.CodigoMarca, txtNombre.Text, txtDescripcion.Text);
                string res = marcaBC.Actualizar(objetoNuevo, objeto);


                if (res == "1")
                {
                    lblResultado.ForeColor = System.Drawing.Color.Blue;
                    lblResultado.Text = "Guardado con Exito";
                    cargarGrilla();

                }
                else
                {
                    lblResultado.ForeColor = System.Drawing.Color.Red;
                    lblResultado.Text = "Todo mal";
                }

                ViewState["objeto"] = null;
                txtDescripcion.Text = "";
                txtNombre.Text = "";
                gridDatos.SelectedIndex = -1;
            }

        }

        protected void gridDatos_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

      
    }
}